﻿using System;
using Sinacor.UI.Bovespa.Ordens.Model;
using System.ComponentModel;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Ordens.Presenter
{
    /// <summary>
    /// Interface para implementação da view AjusteMercadoFuturo
    /// </summary>
    public interface IAjusteMercadoFuturo : IBaseView
    {
        #region Membros

        /// <summary>
        /// Atribuir fatorCotacao para a propriedade Fator da Model que está ocorrendo insert no SinacorDataGrid
        /// Atribuir precoExercicio para a propriedade PrecoExercicio da Model que está ocorrendo insert no SinacorDataGrid
        /// </summary>
        /// <param name="fatorCotacao"></param>
        /// <param name="precoExercicio"></param>
        void ApresentarDadosAtivo(System.Int32 fatorCotacao, System.Decimal precoExercicio);

        /// <summary>
        /// Realizar um UpdateTarget da propriedade ItemsSource do DataGrid
        /// </summary>
        void ApresentarListaAjustesMercadoFuturo();

        /// <summary>
        /// Realizar um UpdateTarget da propriedade ItemsSource do SinacorComboBox de pregões 
        /// </summary>
        void ApresentarListaDataPregao();

        /// <summary>
        /// Atribuir ajusteAplicado para a propriedade AjusteAplicado da Model que está ocorrendo insert no SinacorDataGrid.
        /// Atribuir percentualVariacao para a propriedade Variacao da Model que está ocorrendo insert no SinacorDataGrid.
        /// </summary>
        /// <param name="ajusteAplicado"></param>
        /// <param name="percentualVariacao"></param>
        void ApresentarVariacao(System.Decimal ajusteAplicado, System.Decimal percentualVariacao);

        /// <summary>
        /// Apresentar a mensagem da resourceKey "Bovespa.Ordens.Message.ConfirmaAjustePosicao" no SinacorMessageBox
        /// </summary>
        /// <returns></returns>
        bool ConfirmarAjustePosicao();

        /// <summary>
        /// Apresenta um SinacorMessageBox, com a mensagem da resouce key
        /// </summary>
        /// <param name="resourceKey"></param>
        void ExibirMensagem(System.String resourceKey);

        /// <summary>
        /// Apresentar mensagem da resource Key "Bovespa.Ordens.ExceptionMessage.ValorAjusteAnteriorObrigatorio" no SinacorMessageBox
        /// </summary>
        void InformarValorAjusteAnteriorObrigatorio();

        /// <summary>
        /// Apresentar mensagem da resource Key "Bovespa.Ordens.ExceptionMessage.ValorAjusteAtualObrigatorio" no SinacorMessageBox
        /// </summary>
        void InformarValorAtualObrigatorio();

        /// <summary>
        /// Realiza o UpdateTarget no SinacorTextBox Ativo do filtro de pesquisa
        /// </summary>
        void ExibirTituloEscolhido();

        /// <summary>
        /// Apresentar mensagem da resource Key "Bovespa.Ordens.ExceptionMessage.AtivoNaoPertenceMercadoFuturo" no SinacorMessageBox
        /// </summary>
        void InformarAtivoNaoPertenceMercadoFuturo();

        /// <summary>
        /// Apresenta mensagem da resource key "Bovespa.Ordens.Message.MovOrdensNaoAberto" no SinacorMessageBox e fechar a tela
        /// </summary>
        void InformarMovimentoFechado();

        #endregion
    }
}